<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>TZ-追梦</title>
    <style>
        * {
            margin: 0;
            padding: 0;
        }
        html,body{
            height: 100%;
        }
    </style>
</head>
<body>
    <script>
        var max = 220; /*最大值*/
        var min = 120; /*最小值*/

        var arr = [max,min,min];
        var color1 = '',color2 = '';

        var timer = setInterval(color,13);
        function color(){
            for(var i=0;i<arr.length;i++ ){
                if( arr[i] === max ){
                    (i+1)>2?(arr[i-2]===min?( i-1<0?(arr[i+2]++):(arr[i-1]++)):('')):(arr[i+1]===min?(i-1<0?(arr[i+2]++):arr[i-1]++):(''))
                }else if( arr[i] === min ){
                    i+1 >2?(arr[i-2]===max?(i-1 <0?(arr[i+2]--):(arr[i-1]--)):('')):(arr[i+1]===max?(i-1 <0?(arr[i+2] --):(arr[i-1]--)):(''))
                }
            }

            color1 = '#'+convert( arr[1] )+convert( arr[2] )+convert( arr[0] );
            color2 = '#'+convert( arr[2] )+convert( arr[0] )+convert( arr[1] );

            change(color1,color2);
        }
        
        function change(color1,color2) {

            document.body.style.background = '-webkit-gradient(linear,left top,right bottom,from('+color1+'),to('+color2+'))';
            document.body.style.background = '-moz-linear-gradient(left top,right bottom,'+color1+' 0%,'+color2+' 100%)';
            document.body.style.background = '-webkit-gradient(linear,left top,right bottom,from('+color1+'),to('+color2+'))';
            document.body.style.background = 'linear-gradient(,left top,'+color1+' 0%,'+color2+' 100%)';
        }
        
        // 转换成16进制的字符串
        function convert(n) {
            var str = n.toString(16);
            if( str.length<2 ){
                str = '0'+str;
            }
            return str;
        }
    </script>


   <!--
        设计思路：
        var arr = [r,g,b];

        if( g==255&&b==0 ){r++}
        if( r==0&&b==255 ){g++}
        if( r==255&&g==0 ){b++}

        if( g==0&&b==255 ){r--}
        if( r==255&&b==0 ){g--}
        if( r==0&&g==255 ){b--}


        if( arr[1]==255&&arr[2]==0 ){ arr[0]++ }
        if( arr[2]==255&&arr[0]==0 ){ arr[1]++ }
        if( arr[0]==255&&arr[1]==0 ){ arr[2]++ }

        if( arr[1]==0&&arr[2]==255 ){ arr[0]-- }
        if( arr[2]==0&&arr[0]==255 ){ arr[1]-- }
        if( arr[0]==0&&arr[1]==255 ){ arr[2]-- }


        for( var i=0;i<arr.length;i++ ){
            if( arr[i] == 255 ){
                if( (i+1)>2 ){
                    if( arr[i-2]==0 ){
                        if( i-1<0 ){
                            arr[i+2]++;
                        }else{
                            arr[i-1]++;
                        }
                    }
                }else{
                    if( arr[i+1] == 0 ){
                        if( i-1<0 ){
                            arr[i+2]++;
                        }else{
                            arr[i-1]++
                        }
                    }
                }
            }else if( arr[i] == 0 ){
                if( i+1 >2 ){
                    if( arr[i-2] == 255 ){
                        if ( i-1 <0 ){
                            arr[i+2]--
                        }else{
                            arr[i-1]--
                        }
                    }
                }else{
                    if( arr[i+1] == 255){
                        if( i-1 <0 ){
                            arr[i+2] --;
                        }else{
                            arr[i-1]--
                        }
                    }
                }
            }
        }

        三目简化

        arr[i-2]==0?( i-1<0?(arr[i+2]++):(arr[i-1]++)):('')
        arr[i+1]==0?(i-1<0?(arr[i+2]++):arr[i-1]++):('')

        (i+1)>2?(arr[i-2]==0?( i-1<0?(arr[i+2]++):(arr[i-1]++)):('')):(arr[i+1]==0?(i-1<0?(arr[i+2]++):arr[i-1]++):(''))

        arr[i-2]==255?(i-1 <0?(arr[i+2]--):(arr[i-1]--)):('')
        arr[i+1]==255?(i-1 <0?(arr[i+2] --):(arr[i-1]--)):('')

        i+1 >2?(arr[i-2]==255?(i-1 <0?(arr[i+2]--):(arr[i-1]--)):('')):(arr[i+1]==255?(i-1 <0?(arr[i+2] --):(arr[i-1]--)):(''))
    -->
</body>
</html>